﻿//
// Created by HONOR on 2024/3/26.
//
#include <stdio.h>

// 赋值运算符的分类：
// 直接赋值、加后赋值、减后赋值、乘后赋值、除后赋值、取余赋值
void Assignment_operators() {
    // +=
    // 把左边的和右边的进行相加，并且把结果赋值给左边，对右边没有任何影响
    int a = 10;
    int b = 10;
    a += b;
    printf("%d\n", a);  //20


    // -=
    int c = 10;
    int d = 10;
    printf("%d\n", c -= d); //0

    // *=
    int f = 10;
    int f1 = 20;
    printf("%d", f *= f1); //200


    int a0 = 10;
    int b0 = 20;
    printf("%d\n", a0 == b0);
    printf("%d\n", a0 != b0);
    printf("%d\n", a0 > b0);
    printf("%d\n", a0 >= b0);
    printf("%d\n", a0 < b0);
    printf("%d\n", a0 <= b0);
}

void practice() {
    // 数学中，判断一个数是否为偶数，使用哪些关系运算符呢？
    int a = 10;
    if (a % 2 == 0)
        printf("这个数为偶数\n");
    else
        printf("这个数是奇数\n");
    // 在数学计算中，判断一个数字是否超过100，使用哪些关系运算符？
    int b = 99;
    if (b -= 100 > 0)
        printf("这个数大于一百\n");
    // 电子商务项目的支付功能业务，需要判断银行卡中余额是否足够，使用哪些运算符？
    int p = 100;
    float p2 = 15.6;
    if (p2 >= p)
        printf("支付成功");
    else
        printf("余额不足支付失败");
    // 电商项目的购买商品业务，需要判断货物的库存是否足够，使用哪些关系运算符呢？
    // 设置库存
    int a1 = 10;
    // 设置购买量
    int a2 = 11;
    if (a1 > a2)
        printf("库存充足\n");
    else
        printf("库存不足\n");
    // 点餐项目的筛选商品业务，需要点不低于100元的，使用哪个运算符？
    int c1 = 25;
    int c2 = 35;
    int c4 = 25;
    int c3 = 25;
    int max;
    if (c1 += c2 += c3 += c4 > 100)
        printf("消费金额大于100\n");
    else
        printf("消费金额不足100\n");
}


// 逻辑运算符
// 1：成立  2：不成立
// &&(与)：并且、而且  计算规则：只有两边都成立那么最终的结果才是成立的，只有一个不成立，最终的结果都是不成立的
void Logical_operators() {
// 逻辑运算符 &&(与)：并且、而且  计算规则：只有两边都成立那么最终的结果才是成立的，只有一个不成立，最终的结果都是不成立的
    printf("%d\n", 1 && 1); // 1
    printf("%d\n", 0 && 0);
    printf("%d\n", 1 && 0);
    printf("%d\n", 0 && 1);
    printf("------------------------------------\n");
    // ||(或)：或者计算规则：两边都不成立。那么最终的结果是不成立的，只要有一个成立，最终的结果就是成立的。
    printf("%d\n", 1 || 1); // 1
    printf("%d\n", 0 || 0); // 0
    printf("%d\n", 1 || 0); // 1
    printf("%d\n", 0 || 1); // 1
    printf("____________________________________________\n");
    // 取反
    printf("%d\n", !1);
    printf("%d\n", !0);
    printf("-----------------------------------------");
}

// 练习
// 需求1：
//键盘录入一个两位数，要求该数字不能包含7.
//如果符合要求，输出1，如果不符合要求输出0
int  practice3() {
    printf("输入一个两位的整数:");

    // 设置一个接受变量的值
    int a;
    // 提示输入的内容
    scanf("%d", &a);
    // 分别取出两位数
    int a1 = a / 10;
    int a0 = a % 10;
    // 判断
    if (a1 == 7 && a0 == 7)
        printf("%d", 1);
    else
        printf("%d", 0);
    return 0;

    // 需求2:
    // 键盘录入一个两位数，要求该数字不能包含7，而且不能是7的倍数
    //如过符合要求输出1，不符合输出0；

}
int  practice4() {
    int a;
    // 提示输入的内容
    scanf("%d", &a);
    int a1 = a / 10;
    printf("%d\n",a1);

    int a0 = a % 10;
    printf("%d\n",a0);
    if (a1 == 7 && a0 == 7 && a1%7 ==0 && a0%7 ==0)
        printf("%d", 1);
    else
        printf("%d", 0);
    return 0;
}


// 逻辑运算具有短路效果
// 就是如果前面的表示表达式已经已经可以决定整个表达式的结果了，后面的表示就不会再执行
//int main() {
////    Assignment_operators(); // 逻辑运算度符
////    Logical_operators();
////    practice();
//    // practice3();
//    practice4();
//    return 0;
//
//}